Інформація про новину
  • Переглядів: 1140
  • Дата: 4-10-2021, 08:26
4-10-2021, 08:26

30. Функції користувача в Python

Категорія: Інформатика





Попередня сторінка:  29. Організація діалогу користувача з п...
Наступна сторінка:   31. Величини. Числові типи даних в Python

Нам постійно доводиться оперувати поняттям «функція». Проаналізуємо, які види функцій ми використовуємо при написанні програм.

Пригадаємо, що функція — це пойменований блок програмного коду, до якого можна звернутися з іншого місця програми. Python надає у використання вбудовані функції на зразок len(), print(), іnput() тощо, описані в різних модулях.

Створюючи класи, ви описували методи класів — функції, які визначають поведінку екземплярів цих класів. Програмуючи графічний інтерфейс, ви створюєте обробники подій — функції, які виконуються внаслідок певних подій із віджетами.

У 6 класі ви ознайомились із методом поділу складної задачі на підзадачі. Алгоритм розв’язування кожної підзадачі можна оформити у вигляді функції, створивши функції користувача. Це дає можливість багаторазового використання коду, спрощує його читання, написання, тестування, а також виправлення помилок.

Опис функцій у Python

Пригадаймо синтаксис опису функцій у Python:

Під час опису функцій слід пам’ятати про кілька правил.

• Заголовок функції складається з ключового слова def, назви функції та переліку формальних параметрів, узятих у круглі дужки. Якщо у функцію не треба передавати значення, слід записати порожні дужки.

• Після дужок ставиться двокрапка (:) і з нового рядка з відступом починається тіло функції.

Якщо функція не повертає значення на місце виклику або повернуте значення не потрібне, виклик функції записують окремим оператором основної програми:

Опис функції має міститися вище від виклику функції.

Коли програма зустрічає виклик функції, керування передається у функцію із зазначеною назвою. Значення фактичних параметрів (іаргументів) передаються формальним параметрам, тому слід дотримуватися відповідності між списками формальних і фактичних параметрів щодо їх кількості, порядку, типів.

Після виконання операторів тіла функції програма продовжить виконуватися з оператора, наступного за оператором виклику функції.

Прослідкуйте за послідовністю виконання операторів програми (починаючи з рядка 3 на рис. 30.1). Зверніть увагу на значення, які отримують формальні параметри функції х і у.

Повернення результату виконання функції

Функція після виклику (рис. 30.2, 1) може повернути на місце виклику обчислене значення. Для цього в тілі функції записують оператор return. Він перериває виконання функції і повертає значення виразу (рис. 30.2, 2), яке можна присвоїти змінній, вивести тощо.

Якщо функція не використовує оператор return явно, то повертає результат None, що означає відсутність значення, тобто ніщо, або порожне місце.

Пригадайте функцію для знаходження найбільшого спільного дільника двох чисел, знайому вам із 6 класу:

Складемо програму для розв’язування задачі.

Задача. Дано дві шестірні, що мають а і b зубців (рис. 30.3). Складемо програму для підрахунку, скільки обертів має здійснити кожна шестірня, щоб вони повернулись у початкове положення.

Під час обертання зубці шестерень проходять однакові шляхи. Для повернення в початкове положення потрібно, щоб кожна з них виконала ціле число обертів. Тобто шлях L, пройдений за весь час одним зубцем, має бути спільним кратним кількостей зубців а і Ь, а кількості обертів — відповідно L/a і L/b. Нам відомо, що

де НСК — найменше спільне кратне, НСД — найбільший спільний дільник.

Складемо програму з використанням функції з прикладу 2:

Результат виконання програми: для а = 18, Ь = 24 виводиться: Шестірні зроблять 4 і 3 оберти.

Об/іасть видимості змінної

При створенні функції слід пам’ятати про області видимості змінних (рис. 30.4).

Тут змінну А оголошено у функції my_function(), тому за межами функції вона недоступна. Таку змінну називають локальною, і її область видимості показано білим прямокутником.

До змінної С, оголошеної в основній програмі, можна звернутись і в тілі функції my_function(), викликаної після оголошення змінної, тобто С для функції є глобальною змінною.

Однак, якщо значення глобальної змінної потрібно змінити, її слід додатково оголосити із використанням ключового слова global.

Область видимості змінної — це та частина програмного коду, в якій змінна доступна для використання.

Отже, функції поділяють програму на частини, кожна з яких виконує певне завдання. їх можна багаторазово викликати із різних місць програми і переносити в інші програми.

Питання для самоперевірки

1. Як передаються значення параметрів при виклику функції?

2. Знайдіть і поясніть помилки в програмному коді:

3. Що надрукує програма, якщо:

4. Поясніть роботу функції nsd(m, п) з прикладу 2.

5. Як змінити програму з прикладу 3, якщо механізм містить три шестірні (рис. 30.5)?

Вправа 30

Скласти програму для розв’язування задачі.

Задача. На стадіоні місця класу А коштують а грн, місця класу В — b грн, а місця класу С — с грн. Обчислити загальну суму прибутку від продажу квитків.

1) Завантажте середовище PyCharm. Створіть Python file із назвою Вправа ЗО.

2) Запишіть оператори для введення значень змінних а, Ь, с.

3) Опишіть функцію kvitok(a, b, с), яка запитує, скільки продано квитків класу А, і обчислює суму отриманого прибутку від продажу квитків цього класу.

4) Додайте до опису функції kvitok(a, b, с) оператори для введення кількості проданих квитків класів В і С й обчислення суми, отриманої від продажу квитків кожного класу окремо. Після цього оператор return слід змінити так, щоб функція повертала три значення:

5) В основній програмі обчисліть загальну суму прибутку від продажу квитків:

6) Запишіть оператор виведення значення загальної суми. Випробуйте роботу програми для різних початкових значень.

Комп'ютерне тестування

Виконайте тестове завдання ЗО із автоматичною перевіркою результату.

 

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 




Попередня сторінка:  29. Організація діалогу користувача з п...
Наступна сторінка:   31. Величини. Числові типи даних в Python



^